Skill

API এবং ডেটা সোর্স ইন্টিগ্রেশন

Web Development - অ্যাঙ্গুলার হাই চার্ট (Angular High Charts) -
6
6

অ্যাপ্লিকেশন তৈরি করার সময় প্রায়ই আপনার ডেটা API (Application Programming Interface) থেকে আসে। Highcharts বা অন্যান্য ডেটা ভিজ্যুয়ালাইজেশন টুল ব্যবহার করার সময়, আপনি সাধারণত JSON বা REST API থেকে ডেটা লোড করে ডায়নামিক চার্ট তৈরি করতে চান। এই প্রক্রিয়াটি API এবং ডেটা সোর্স ইন্টিগ্রেশন নামে পরিচিত।

Angular অ্যাপ্লিকেশনে API ইন্টিগ্রেশন করতে, সাধারণত HTTP ক্লায়েন্ট ব্যবহার করা হয়, এবং এই ডেটা ব্যবহার করে Highcharts বা অন্যান্য ডেটা ভিজ্যুয়ালাইজেশন টুলে ডেটা প্রদর্শন করা হয়।


Angular এ API এবং ডেটা সোর্স ইন্টিগ্রেশন

1. Angular HTTP Client Module ইনস্টল করা

প্রথমত, Angular অ্যাপ্লিকেশনে API ইন্টিগ্রেশন করার জন্য HttpClientModule ইমপোর্ট করতে হয়।

app.module.ts ফাইলে এটি ইমপোর্ট করুন:

import { HttpClientModule } from '@angular/common/http';

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, HttpClientModule],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}

2. HTTP ক্লায়েন্ট সার্ভিস তৈরি করা

ডেটা API থেকে লোড করার জন্য একটি সার্ভিস তৈরি করতে হবে। এই সার্ভিসে আমরা HTTP ক্লায়েন্ট ব্যবহার করে API থেকে ডেটা পাবো।

data.service.ts ফাইল তৈরি করুন:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class DataService {
  private apiUrl = 'https://api.example.com/data'; // আপনার API URL এখানে লিখুন

  constructor(private http: HttpClient) {}

  // API থেকে ডেটা ফেচ করার জন্য একটি ফাংশন
  getData(): Observable<any> {
    return this.http.get<any>(this.apiUrl);
  }
}

এখানে getData() ফাংশনটি API থেকে ডেটা ফেচ করবে এবং এটি একটি Observable রিটার্ন করবে, যা পরে সাবস্ক্রাইব করা যাবে।


3. Component এ API ডেটা লোড করা

এখন আমরা app.component.ts ফাইলে এই সার্ভিস ব্যবহার করে API থেকে ডেটা লোড করবো।

import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service'; // সার্ভিস ইমপোর্ট

import * as Highcharts from 'highcharts';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  Highcharts: typeof Highcharts = Highcharts;
  chartOptions: Highcharts.Options = {};

  constructor(private dataService: DataService) {}

  ngOnInit() {
    this.dataService.getData().subscribe((data) => {
      // API থেকে ডেটা পাওয়ার পর Highcharts ডেটা কনফিগারেশন সেট করা
      this.chartOptions = {
        chart: {
          type: 'line'
        },
        title: {
          text: 'API Data Integration Example'
        },
        xAxis: {
          categories: data.categories
        },
        yAxis: {
          title: {
            text: 'Values'
          }
        },
        series: [
          {
            name: 'Product A',
            data: data.productA
          },
          {
            name: 'Product B',
            data: data.productB
          }
        ]
      };
    });
  }
}

এখানে, ngOnInit() lifecycle hook ব্যবহার করা হয়েছে, যাতে কম্পোনেন্টটি লোড হওয়ার পর API থেকে ডেটা ফেচ করা হয় এবং তারপর সেই ডেটা দিয়ে Highcharts চার্ট কনফিগার করা হয়।


4. HTML টেমপ্লেট তৈরি করা

app.component.html ফাইলে Highcharts চার্টটি প্রদর্শন করতে নিচের কোডটি ব্যবহার করুন:

<div style="height: 400px;">
  <highcharts-chart
    [Highcharts]="Highcharts"
    [options]="chartOptions"
    style="width: 100%; height: 100%; display: block;">
  </highcharts-chart>
</div>

এই HTML টেমপ্লেটটি HighchartsChartModule ব্যবহার করে API থেকে প্রাপ্ত ডেটার মাধ্যমে তৈরি করা Highcharts চার্টটি প্রদর্শন করবে।


সারাংশ

API এবং ডেটা সোর্স ইন্টিগ্রেশন Angular অ্যাপ্লিকেশনে অত্যন্ত গুরুত্বপূর্ণ একটি প্রক্রিয়া, যা আপনাকে লাইভ ডেটা API থেকে ডেটা নিয়ে তা ডায়নামিকভাবে আপনার অ্যাপ্লিকেশনে প্রদর্শন করতে সাহায্য করে। Highcharts বা অন্যান্য ডেটা ভিজ্যুয়ালাইজেশন টুলের সাথে ইন্টিগ্রেশন করলে, আপনি API থেকে প্রাপ্ত ডেটা দিয়ে ইন্টারঅ্যাকটিভ এবং কাস্টমাইজড চার্ট তৈরি করতে পারবেন।

এই প্রক্রিয়াতে:

  • Angular HttpClientModule ব্যবহার করে API কল করা হয়,
  • Observable প্যাটার্নের মাধ্যমে ডেটা সাবস্ক্রাইব করা হয়,
  • Highcharts ব্যবহার করে ডেটা ভিজ্যুয়ালাইজ করা হয়।
Content added By

External API থেকে ডেটা লোড করা

7
7

Angular অ্যাপ্লিকেশন থেকে External API (অর্থাৎ বাইরের ওয়েব সার্ভিস বা ডেটা সোর্স) থেকে ডেটা লোড করা একটি সাধারণ এবং গুরুত্বপূর্ণ কাজ। Angular এর HttpClientModule এর মাধ্যমে আপনি খুব সহজেই HTTP রিকোয়েস্ট পাঠাতে এবং রেসপন্স পেতে পারেন।

এখানে, External API থেকে ডেটা লোড করার পুরো প্রক্রিয়া আলোচনা করা হবে।


1. HttpClientModule ইমপোর্ট করা

External API থেকে ডেটা লোড করার জন্য প্রথমে HttpClientModule ইমপোর্ট করতে হবে। এটি app.module.ts ফাইলে ইমপোর্ট করতে হবে।

import { HttpClientModule } from '@angular/common/http';

এটি imports অ্যারে তে যোগ করতে হবে:

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule, HttpClientModule],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}

2. HttpClient সার্ভিস ইনজেক্ট করা

এখন আপনি HttpClient সার্ভিসটি আপনার কম্পোনেন্টে ইনজেক্ট করবেন। HttpClient সার্ভিসটি API রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়।

import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  constructor(private http: HttpClient) {}  // HttpClient ইনজেক্ট করা
}

3. External API রিকোয়েস্ট পাঠানো

External API থেকে ডেটা লোড করার জন্য আপনি HttpClient সার্ভিসের get() মেথড ব্যবহার করতে পারেন। এখানে আমরা GET রিকোয়েস্টের উদাহরণ দেখব, তবে আপনি POST, PUT, বা DELETE রিকোয়েস্টও ব্যবহার করতে পারেন।

export class AppComponent {
  data: any;  // ডেটা রাখার জন্য একটি ভেরিয়েবল

  constructor(private http: HttpClient) {}

  ngOnInit() {
    // External API থেকে ডেটা লোড করা
    this.http.get('https://api.example.com/data').subscribe(
      response => {
        this.data = response;  // API থেকে পাওয়া ডেটা অ্যাসাইন করা
        console.log(this.data);  // কনসোল লোগে ডেটা দেখানো
      },
      error => {
        console.log('Error:', error);  // API রিকোয়েস্টে কোনো সমস্যা হলে এরর দেখানো
      }
    );
  }
}

উপরের কোডে, get() মেথডটি API থেকে ডেটা নিয়ে আসবে এবং subscribe() মেথডের মাধ্যমে আপনি রেসপন্স বা এরর হ্যান্ডল করতে পারেন। ডেটা লোড হওয়ার পর তা this.data ভেরিয়েবলে আসবে এবং আপনি এটি কম্পোনেন্টে ব্যবহার করতে পারবেন।


4. API রেসপন্সে ডেটা প্রদর্শন

এখন, আপনি লোড হওয়া ডেটাকে কম্পোনেন্টের টেমপ্লেটে প্রদর্শন করতে পারেন। উদাহরণস্বরূপ, নিচে HTML টেমপ্লেট দেওয়া হলো:

<div *ngIf="data">
  <h2>API থেকে প্রাপ্ত ডেটা:</h2>
  <pre>{{ data | json }}</pre>
</div>

<div *ngIf="!data">
  <p>ডেটা লোড হচ্ছে...</p>
</div>

এখানে, *ngIf ডিরেকটিভটি ডেটা লোড হওয়ার পর কনটেন্ট দেখাবে এবং যদি ডেটা লোড না হয় তবে একটি লোডিং মেসেজ দেখাবে।


5. প্যারামিটার সহ GET রিকোয়েস্ট পাঠানো

কিছু API প্যারামিটার সহ GET রিকোয়েস্ট গ্রহণ করে। আপনি HttpParams ব্যবহার করে প্যারামিটার পাঠাতে পারেন:

import { HttpParams } from '@angular/common/http';

export class AppComponent {
  constructor(private http: HttpClient) {}

  ngOnInit() {
    const params = new HttpParams().set('id', '123');  // প্যারামিটার সেট করা
    this.http.get('https://api.example.com/data', { params }).subscribe(
      response => {
        console.log(response);
      },
      error => {
        console.log('Error:', error);
      }
    );
  }
}

এখানে, HttpParams দিয়ে id প্যারামিটারটি API রিকোয়েস্টের সাথে পাঠানো হচ্ছে।


6. Error Handling (এরর হ্যান্ডলিং)

API রিকোয়েস্টের সময় যদি কোনো সমস্যা হয়, যেমন নেটওয়ার্ক সমস্যা বা সার্ভার সমস্যা, তাহলে আপনাকে তা সঠিকভাবে হ্যান্ডল করতে হবে। Angular HttpErrorResponse ব্যবহার করে এরর হ্যান্ডল করতে সাহায্য করে।

import { HttpErrorResponse } from '@angular/common/http';

export class AppComponent {
  constructor(private http: HttpClient) {}

  ngOnInit() {
    this.http.get('https://api.example.com/data').subscribe(
      response => {
        console.log(response);
      },
      (error: HttpErrorResponse) => {
        console.error('API রিকোয়েস্টে সমস্যা:', error.message);
      }
    );
  }
}

এখানে, HttpErrorResponse দিয়ে আমরা API রিকোয়েস্টের ত্রুটি ট্র্যাক করছি এবং সেই ত্রুটির বার্তা কনসোলে দেখাচ্ছি।


7. POST রিকোয়েস্ট পাঠানো

যদি আপনি API এ ডেটা পাঠাতে চান, তবে post() মেথড ব্যবহার করবেন:

export class AppComponent {
  constructor(private http: HttpClient) {}

  ngOnInit() {
    const requestBody = { name: 'John', age: 30 };
    this.http.post('https://api.example.com/data', requestBody).subscribe(
      response => {
        console.log('Data posted successfully:', response);
      },
      (error: HttpErrorResponse) => {
        console.error('Error:', error.message);
      }
    );
  }
}

এখানে, post() মেথডের মাধ্যমে আমরা requestBody পাঠাচ্ছি এবং API রেসপন্স পাচ্ছি।


সারাংশ

Angular এ External API থেকে ডেটা লোড করার জন্য HttpClientModule ব্যবহার করা হয়। আপনি GET, POST, PUT, বা DELETE রিকোয়েস্ট পাঠিয়ে API থেকে ডেটা লোড করতে পারেন এবং subscribe() মেথডের মাধ্যমে সেই ডেটা অ্যাক্সেস করতে পারেন। এর সাথে আপনি API রেসপন্স এবং এরর হ্যান্ডলিংয়ের মাধ্যমে আরও উন্নত ফিচার যুক্ত করতে পারেন। HttpParams দিয়ে প্যারামিটার পাঠানো, এবং HttpErrorResponse দিয়ে ত্রুটি হ্যান্ডলিং Angular এ API ইন্টিগ্রেশনকে আরও সহজ করে তোলে।

Content added By

Real-time ডেটা আপডেটের জন্য WebSocket ব্যবহার করা

5
5

WebSocket হলো একটি প্রোটোকল যা ক্লায়েন্ট এবং সার্ভারের মধ্যে একটানা এবং রিয়েল-টাইম যোগাযোগ স্থাপন করে। এটি HTTP প্রোটোকলের তুলনায় বেশি কার্যকরী, কারণ একবার কানেকশন স্থাপিত হলে তা স্থায়ী থাকে এবং বারবার নতুন কানেকশন তৈরি করার প্রয়োজন পড়ে না। এই কারণে, WebSocket ব্যবহার করে আপনি সহজেই রিয়েল-টাইম ডেটা সেন্টার থেকে ক্লায়েন্ট অ্যাপ্লিকেশনে পাঠাতে পারেন এবং ব্রাউজারে সরাসরি আপডেট দেখতে পারেন।

এখানে, আমরা দেখব কিভাবে Angular অ্যাপ্লিকেশনে WebSocket ব্যবহার করে Highcharts চার্টে রিয়েল-টাইম ডেটা আপডেট করা যায়।


Step 1: WebSocket ইনস্টল করা

আপনি যদি Angular অ্যাপ্লিকেশনে WebSocket ব্যবহার করতে চান, তবে প্রথমে ngx-websocket বা rxjs/webSocket ব্যবহার করতে পারেন। এই টিউটোরিয়ালে আমরা Angular এর বিল্ট-ইন rxjs/webSocket ব্যবহার করব।

rxjs/webSocket ইনস্টল করুন:

npm install rxjs --save

এটি rxjs লাইব্রেরি ইনস্টল করবে, যা Angular অ্যাপ্লিকেশনে WebSocket ব্যবহারের জন্য প্রয়োজনীয় ফাংশন সরবরাহ করে।


Step 2: WebSocket সেবা তৈরি করা

আমরা একটি সার্ভিস তৈরি করব যা WebSocket কানেকশন পরিচালনা করবে এবং ডেটা পাবলিশ/সাবস্ক্রাইব করবে।

  1. WebSocket সেবা তৈরি করুন:
ng generate service websocket

এটি websocket.service.ts নামে একটি নতুন সার্ভিস তৈরি করবে।

  1. websocket.service.ts ফাইলে WebSocket কানেকশন তৈরি করুন:
import { Injectable } from '@angular/core';
import { webSocket } from 'rxjs/webSocket';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class WebsocketService {
  private socket: any;
  private socketUrl: string = 'ws://localhost:8080';  // WebSocket সার্ভারের URL

  constructor() { }

  // WebSocket কানেকশন শুরু করা
  connect(): Observable<any> {
    this.socket = webSocket(this.socketUrl);
    return this.socket.asObservable();
  }

  // WebSocket সার্ভারে ডেটা পাঠানো
  sendMessage(message: any): void {
    this.socket.next(message);
  }

  // WebSocket কানেকশন বন্ধ করা
  close(): void {
    this.socket.complete();
  }
}
  • connect(): WebSocket সার্ভারে কানেক্ট করবে এবং ডেটা রিসিভ করার জন্য একটি Observable রিটার্ন করবে।
  • sendMessage(): সার্ভারে একটি মেসেজ পাঠানোর জন্য।
  • close(): WebSocket কানেকশন বন্ধ করবে।

Step 3: Angular কম্পোনেন্টে WebSocket সেবা ব্যবহার করা

এখন আমরা এই সেবাটি ব্যবহার করব আমাদের কম্পোনেন্টে এবং রিয়েল-টাইম ডেটা গ্রহণ করে Highcharts চার্টে আপডেট করব।

  1. app.component.ts ফাইলে WebSocket সেবা এবং Highcharts চার্ট কনফিগারেশন যোগ করুন:
import { Component, OnInit, OnDestroy } from '@angular/core';
import * as Highcharts from 'highcharts';
import { WebsocketService } from './websocket.service';  // WebSocket সেবা ইমপোর্ট করা

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit, OnDestroy {
  Highcharts = Highcharts;
  chartOptions: any;
  chartData: any[] = [];
  private socketSubscription: any;

  constructor(private websocketService: WebsocketService) { }

  ngOnInit() {
    this.chartOptions = {
      chart: {
        type: 'line'
      },
      title: {
        text: 'রিয়েল-টাইম ডেটা আপডেট'
      },
      series: [{
        name: 'Stock Price',
        data: this.chartData
      }]
    };

    // WebSocket কানেক্ট করা এবং ডেটা সাবস্ক্রাইব করা
    this.socketSubscription = this.websocketService.connect().subscribe((data: any) => {
      this.updateChart(data);
    });
  }

  // Highcharts চার্ট আপডেট করা
  updateChart(newData: any) {
    // নতুন ডেটা সংগ্রহ করা এবং চার্টে যুক্ত করা
    this.chartData.push([newData.timestamp, newData.value]);  // নতুন ডেটা যুক্ত করা
    if (this.chartData.length > 50) {
      this.chartData.shift();  // অতিরিক্ত ডেটা মুছে ফেলা (এখানে ৫০টি পয়েন্ট সীমিত)
    }

    // Highcharts এর মাধ্যমে ডেটা আপডেট করা
    Highcharts.charts[0].series[0].setData(this.chartData);
  }

  ngOnDestroy() {
    // কম্পোনেন্ট ধ্বংস হলে WebSocket সাবস্ক্রিপশন বন্ধ করা
    if (this.socketSubscription) {
      this.socketSubscription.unsubscribe();
    }
  }
}
  1. app.component.html ফাইলে Highcharts কম্পোনেন্ট যোগ করুন:
<div style="height: 400px;">
  <highcharts-chart
    [Highcharts]="Highcharts"
    [options]="chartOptions"
    style="width: 100%; height: 100%; display: block;">
  </highcharts-chart>
</div>

ব্যাখ্যা:

  1. WebSocket কানেকশন: ngOnInit মেথডে আমরা websocketService.connect() কল করে WebSocket কানেকশন শুরু করেছি। এর মাধ্যমে আমরা WebSocket সার্ভার থেকে আসা ডেটা পাবো।
  2. ডেটা আপডেট করা: যখন নতুন ডেটা আসে (যেমন timestamp এবং value), তখন আমরা সেই ডেটা chartData অ্যারে তে যোগ করি এবং তারপর Highcharts.charts[0].series[0].setData() ব্যবহার করে চার্ট আপডেট করি।
  3. ngOnDestroy: যখন কম্পোনেন্টটি ধ্বংস হয় (যেমন ইউজার পেজ থেকে চলে যায়), তখন WebSocket কানেকশন বন্ধ করতে ngOnDestroy মেথডে unsubscribe() ব্যবহার করা হয়।

Step 4: WebSocket সার্ভার সেটআপ

WebSocket সার্ভার থেকে ডেটা পাঠানোর জন্য, আপনি একটি সাধারণ Node.js WebSocket সার্ভার তৈরি করতে পারেন। এখানে একটি ছোট Node.js WebSocket সার্ভারের উদাহরণ দেওয়া হলো:

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', (ws) => {
  setInterval(() => {
    const data = {
      timestamp: Date.now(),
      value: Math.random() * 100  // ডামি ডেটা
    };
    ws.send(JSON.stringify(data));  // WebSocket মাধ্যমে ডেটা পাঠানো
  }, 2000);  // প্রতি ২ সেকেন্ডে ডেটা পাঠানো
});

এই সার্ভারটি প্রতি ২ সেকেন্ডে একটি নতুন র্যান্ডম value সহ টাইমস্ট্যাম্প পাঠাবে।


সারাংশ

WebSocket ব্যবহার করে Angular অ্যাপ্লিকেশনে রিয়েল-টাইম ডেটা আপডেট করা একটি শক্তিশালী পদ্ধতি। আমরা Angular এর rxjs/webSocket এবং Highcharts ব্যবহার করে একটি রিয়েল-টাইম ডেটা আপডেটের সিস্টেম তৈরি করেছি। এটি WebSocket মাধ্যমে ডেটা সংগ্রহ করে Highcharts চার্টে প্রদর্শন করে। WebSocket সার্ভারের মাধ্যমে ডেটা পাঠানো এবং গ্রহণ করার এই প্রক্রিয়া রিয়েল-টাইম ডেটা ভিজ্যুয়ালাইজেশনের জন্য কার্যকরী একটি সমাধান।

Content added By

Highcharts এর সাথে API এর মাধ্যমে ডায়নামিক ডেটা লোড করা

5
5

Highcharts এর সাথে API ব্যবহারের মাধ্যমে আপনি ডায়নামিক ডেটা লোড করতে পারেন এবং সেই ডেটার ভিত্তিতে আপনার চার্ট রিফ্রেশ বা আপডেট করতে পারেন। Angular অ্যাপ্লিকেশনের মাধ্যমে API কল করে Highcharts চার্টে ডেটা লোড করা খুবই কার্যকরী এবং রিয়েল-টাইম ডেটা ভিজ্যুয়ালাইজেশন তৈরি করার জন্য ব্যবহৃত হয়।

এই টিউটোরিয়ালে আমরা দেখব কিভাবে Angular এবং Highcharts এর সাথে API এর মাধ্যমে ডায়নামিক ডেটা লোড করা যায়।


API এর মাধ্যমে ডায়নামিক ডেটা লোড করার প্রক্রিয়া

  1. API কল করা: Angular অ্যাপ্লিকেশনে API কল করার জন্য HttpClient ব্যবহার করা হয়।
  2. ডেটা ফেচ করা: API থেকে ডেটা নিয়ে সেই ডেটা Highcharts এর সিরিজে প্রদান করা হবে।
  3. Highcharts এর ডেটা আপডেট করা: API থেকে পাওয়া ডেটা দিয়ে Highcharts চার্ট আপডেট করা হবে।

স্টেপ 1: Angular প্রজেক্টে HttpClientModule ইমপোর্ট করা

প্রথমে, আপনাকে HttpClientModule Angular অ্যাপে যোগ করতে হবে, যাতে API কল করা সম্ভব হয়।

app.module.ts ফাইলে HttpClientModule ইমপোর্ট করুন:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';  // HttpClientModule ইমপোর্ট করা

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule  // HttpClientModule যোগ করা
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

স্টেপ 2: API কল করার জন্য Angular সার্ভিস তৈরি করা

এখন একটি Angular সার্ভিস তৈরি করব যা API কল করবে এবং ডেটা ফেচ করবে।

ng generate service data

এটি একটি নতুন সার্ভিস তৈরি করবে। এবার data.service.ts ফাইলে API কলের জন্য কোড লিখুন:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class DataService {

  private apiUrl = 'https://api.example.com/data';  // API এর URL

  constructor(private http: HttpClient) { }

  // API থেকে ডেটা ফেচ করার ফাংশন
  getData(): Observable<any> {
    return this.http.get<any>(this.apiUrl);
  }
}

এখানে, getData() ফাংশনটি API থেকে ডেটা নিয়ে আসবে।


স্টেপ 3: Highcharts কম্পোনেন্টে API ডেটা লোড করা

এখন আমরা app.component.ts ফাইলে API থেকে ডেটা নিয়ে এসে Highcharts কম্পোনেন্টে তা আপডেট করব।

import { Component, OnInit } from '@angular/core';
import * as Highcharts from 'highcharts';
import { DataService } from './data.service';  // DataService ইমপোর্ট করা

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  Highcharts = Highcharts;  // Highcharts ব্যবহার করার জন্য
  chartOptions: any;  // চার্টের অপশন স্টোর করার জন্য

  constructor(private dataService: DataService) {}

  ngOnInit() {
    // API থেকে ডেটা ফেচ করা
    this.dataService.getData().subscribe(data => {
      this.chartOptions = {
        chart: {
          type: 'line'
        },
        title: {
          text: 'ডায়নামিক ডেটা চার্ট'
        },
        xAxis: {
          categories: data.categories  // API থেকে পাওয়া ক্যাটেগরি ডেটা
        },
        yAxis: {
          title: {
            text: 'মান'
          }
        },
        series: [{
          name: 'Data Series',
          data: data.values  // API থেকে পাওয়া ডেটা
        }]
      };
    });
  }
}

এখানে, ngOnInit() ফাংশনের মধ্যে আমরা dataService.getData() কল করেছি, যা API থেকে ডেটা নিয়ে আসে এবং সেই ডেটা ব্যবহার করে Highcharts এর চার্ট কনফিগারেশন তৈরি করি।


স্টেপ 4: API ডেটা প্রদর্শন করার জন্য Highcharts কম্পোনেন্ট যুক্ত করা

app.component.html ফাইলে Highcharts কম্পোনেন্ট যোগ করুন:

<div style="height: 400px;">
  <highcharts-chart
    [Highcharts]="Highcharts"
    [options]="chartOptions"
    style="width: 100%; height: 100%; display: block;">
  </highcharts-chart>
</div>

এটি আপনার Angular অ্যাপ্লিকেশনে Highcharts চার্ট দেখাবে এবং API থেকে পাওয়া ডেটার উপর ভিত্তি করে ডায়নামিক চার্ট তৈরি করবে।


সারাংশ

Highcharts এর সাথে API ব্যবহার করে ডায়নামিক ডেটা লোড করা Angular অ্যাপ্লিকেশনের মধ্যে অত্যন্ত কার্যকরী এবং ইন্টারঅ্যাকটিভ ডেটা ভিজ্যুয়ালাইজেশন তৈরি করতে সহায়ক। আমরা HttpClient ব্যবহার করে API কল করেছি এবং সেই ডেটা Highcharts চার্টে ইনজেক্ট করে রিয়েল-টাইম ডেটা প্রদর্শন করেছি। এই পদ্ধতি ব্যবহার করে আপনি সহজেই Highcharts চার্টে ডাইনামিক ডেটা লোড করতে পারবেন এবং সেটি স্বয়ংক্রিয়ভাবে রিফ্রেশ হবে।

Content added By

JSON/REST API ব্যবহার করে ডেটা ইন্টিগ্রেশন

4
4

JSON (JavaScript Object Notation) একটি লাইটওয়েট ডেটা ইন্টারচেঞ্জ ফরম্যাট যা মানুষের জন্য পড়তে সহজ এবং মেশিনের জন্য পার্স করা সহজ। REST API (Representational State Transfer) হল একটি সফটওয়্যার আর্কিটেকচার শৈলী যা ওয়েব সেবা তৈরির জন্য ব্যবহার করা হয়। Highcharts ব্যবহার করে JSON বা REST API থেকে ডেটা নিয়ে চার্টে ইন্টিগ্রেশন করা সম্ভব। এটি রিয়েল-টাইম ডেটা প্রদর্শনের জন্য খুবই কার্যকরী, যেমন স্টক মার্কেট ডেটা, ওয়েদার ডেটা, ইউজার এনগেজমেন্ট ইত্যাদি।

এখানে আমরা দেখব কিভাবে REST API বা JSON ফাইল থেকে ডেটা নিয়ে Highcharts এর মাধ্যমে ইন্টারঅ্যাকটিভ ডেটা ভিজ্যুয়ালাইজেশন তৈরি করা যায়।


1. REST API থেকে ডেটা ফেচ করা

Highcharts এর সাথে REST API ব্যবহার করে ডেটা ইন্টিগ্রেশন করতে হলে প্রথমে API থেকে ডেটা নিয়ে আসতে হবে। সাধারণত AJAX বা Fetch API ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি API থেকে ডেটা নিয়ে আসা হচ্ছে এবং সেটি Highcharts-এ প্রদর্শিত হচ্ছে।

উদাহরণ: REST API থেকে ডেটা ফেচ করা এবং Highcharts এ প্রদর্শন করা

// Highcharts লাইব্রেরি ইনস্টল এবং লোড করার পর
Highcharts.getJSON('https://api.example.com/sales', function (data) {
    Highcharts.chart('container', {
        chart: {
            type: 'line'
        },
        title: {
            text: 'Sales Over Time'
        },
        xAxis: {
            categories: data.dates  // API থেকে পাওয়া তারিখগুলো
        },
        yAxis: {
            title: {
                text: 'Sales'
            }
        },
        series: [{
            name: 'Sales Data',
            data: data.sales  // API থেকে পাওয়া বিক্রির ডেটা
        }]
    });
});

এখানে getJSON ফাংশন ব্যবহার করে API থেকে ডেটা ফেচ করা হচ্ছে। data.dates এবং data.sales API থেকে পাওয়া ডেটার জন্য নির্দিষ্ট কীগুলির মান। যখন API থেকে ডেটা আসে, তখন সেটি Highcharts-এ প্রদর্শিত হবে।


2. Fetch API ব্যবহার করে ডেটা ফেচ করা

Fetch API একটি আধুনিক পদ্ধতি, যা প্রমিস (Promise) ব্যবহার করে ওয়েব রিকোয়েস্ট পাঠানোর জন্য ব্যবহৃত হয়। এটি ব্রাউজারে সহজেই ব্যবহার করা যায় এবং ডেটা ফেচ করা খুবই সুবিধাজনক।

উদাহরণ: Fetch API ব্যবহার করে ডেটা ফেচ করা এবং Highcharts এ ইন্টিগ্রেট করা

fetch('https://api.example.com/sales')
    .then(response => response.json())
    .then(data => {
        Highcharts.chart('container', {
            chart: {
                type: 'bar'
            },
            title: {
                text: 'Sales Data from API'
            },
            xAxis: {
                categories: data.dates  // API থেকে পাওয়া তারিখগুলির অ্যারে
            },
            yAxis: {
                title: {
                    text: 'Amount in USD'
                }
            },
            series: [{
                name: 'Sales Amount',
                data: data.sales  // API থেকে পাওয়া বিক্রির পরিমাণ
            }]
        });
    })
    .catch(error => console.error('Error fetching data: ', error));

এখানে fetch ফাংশন ব্যবহার করে API থেকে ডেটা নেওয়া হচ্ছে এবং এটি JSON ফরম্যাটে পার্স করা হচ্ছে। তারপর, সেই ডেটা ব্যবহার করে Highcharts এ বার চার্ট (bar chart) তৈরি করা হচ্ছে।


3. REST API থেকে ডেটা ফেচ করার জন্য Async/Await ব্যবহার করা

Async/Await আধুনিক JavaScript সিনট্যাক্স যা অ্যাসিনক্রোনাস কোডকে আরও পরিষ্কার এবং সহজ করে তোলে। এটি ব্যবহার করলে কোড আরও পাঠযোগ্য হয় এবং প্রমিস চেইনিং থেকে মুক্তি পাওয়া যায়।

উদাহরণ: Async/Await ব্যবহার করে REST API থেকে ডেটা ফেচ করা এবং Highcharts এ ইনপুট দেওয়া

async function fetchData() {
    try {
        const response = await fetch('https://api.example.com/sales');
        const data = await response.json();

        Highcharts.chart('container', {
            chart: {
                type: 'line'
            },
            title: {
                text: 'Sales Data'
            },
            xAxis: {
                categories: data.dates
            },
            yAxis: {
                title: {
                    text: 'Sales in USD'
                }
            },
            series: [{
                name: 'Sales',
                data: data.sales
            }]
        });
    } catch (error) {
        console.error('Error fetching data:', error);
    }
}

// Call the fetchData function to load the chart
fetchData();

এখানে async/await ব্যবহার করে REST API থেকে ডেটা ফেচ করা হয়েছে। এটি আরও সিনক্রোনাস কোডের মতো কাজ করে এবং ডেটা পাওয়ার পর সেটি Highcharts এ আপডেট করা হয়।


4. JSON ফাইল থেকে ডেটা ইন্টিগ্রেশন

আপনি local JSON file থেকেও ডেটা ফেচ করতে পারেন, যা কোনও সার্ভারে হোস্ট না করেও কাজ করবে। এভাবে, ডেভেলপমেন্ট পর্যায়ে আপনি JSON ফাইল থেকে ডেটা নিয়ে Highcharts এ প্রদর্শন করতে পারবেন।

উদাহরণ: Local JSON ফাইল থেকে ডেটা ফেচ করা

fetch('data/salesData.json')
    .then(response => response.json())
    .then(data => {
        Highcharts.chart('container', {
            chart: {
                type: 'column'
            },
            title: {
                text: 'Sales Data from Local JSON File'
            },
            xAxis: {
                categories: data.dates
            },
            yAxis: {
                title: {
                    text: 'Sales Amount'
                }
            },
            series: [{
                name: 'Sales',
                data: data.sales
            }]
        });
    })
    .catch(error => console.error('Error loading the JSON data:', error));

এখানে, fetch ফাংশন ব্যবহার করে একটি লোকাল JSON ফাইল থেকে ডেটা ফেচ করা হচ্ছে এবং তা Highcharts এ চার্ট হিসেবে প্রদর্শিত হচ্ছে।


সারাংশ

JSON বা REST API ব্যবহার করে Highcharts এ ডেটা ইন্টিগ্রেশন খুবই সহজ এবং কার্যকরী। আপনি AJAX, Fetch API, বা Async/Await ব্যবহার করে API থেকে ডেটা নিয়ে আসতে পারেন এবং তা Highcharts চার্টে প্রদর্শন করতে পারেন। এটি রিয়েল-টাইম ডেটা ভিজ্যুয়ালাইজেশন তৈরির জন্য খুবই উপকারী এবং এভাবে ব্যবহারকারীরা ডেটার উপর ভিত্তি করে ডায়নামিক এবং ইন্টারঅ্যাকটিভ চার্ট দেখতে পারেন।

Content added By
Promotion